require "class.lua"
require "constantes.lua"

objetoFixo = class:new()

function objetoFixo:init(nome,posicaoX,posicaoY,largura,altura,tipoTextura)	
	self.nome = nome	
	self.posicaoX = posicaoX
	self.posicaoY = posicaoY
	self.altura = altura
	self.largura = largura
	self.tipoTextura = tipoTextura
	if tipoTextura == 1 then
		self.image = TEXTURA_CONCRETO
		self.image:setWrap( "repeat", "repeat")
		self.textura = love.graphics.newQuad(0, 0, largura, altura, 64, 64)
	elseif tipoTextura == 2 then
		self.image = TEXTURA_CHAO
		self.image:setWrap( "repeat", "clamp")
		self.textura = love.graphics.newQuad(0, 0, self.largura, self.altura,128, 64)		
	elseif tipoTextura == 3 then
		self.image = TEXTURA_ESPINHO		
		self.image:setWrap( "repeat", "clamp")
		self.textura = love.graphics.newQuad(0, 0, self.largura, self.altura,64, 64)		
	elseif tipoTextura == 4 then
		self.image = IMG_BAU
		self.image:setWrap( "repeat", "repeat")
		self.textura = love.graphics.newQuad(0, 0, self.largura, self.altura , 128,64)
	end	
	self.body = love.physics.newBody(world, posicaoX, posicaoY,0,0)	
	self.shape = love.physics.newRectangleShape(self.body,0,0,largura,altura,0)
	self.shape:setData( self.nome )
	
			
end

function objetoFixo:getNome()
	return self.nome
end

function objetoFixo:setColData(Data)
	return self.shape:setData(Data)
end

function objetoFixo:destroi()
	self.shape:destroy()
	self.body:destroy()
end

function objetoFixo:getBody()
	return self.body
end

function objetoFixo:getTextura()
	return self.tipoTextura
end

function objetoFixo:getLargura()
	return self.largura
end

function objetoFixo:getAltura()
	return self.altura
end

function objetoFixo:setImage(imageN)
	self.image = imageN
end

function objetoFixo:trataColisao()
end

function objetoFixo:draw()
		love.graphics.drawq(self.image, self.textura, self.posicaoX-(self.largura/2) - posicaoCamera , self.posicaoY-(self.altura/2) )
end

 function objetoFixo:clique(x,y)
	if( math.abs(self.body:getX() - x)< self.largura/2) and ( math.abs(self.body:getY() - y) < self.altura/2)  then
		return true
	else
		return false
	end
end

--verifica se o objeto a ser inserido sobrepoe esse
function objetoFixo:sobreposicao(x,y,l,a)
	if( math.abs(self.body:getX() - x)< (self.largura/2+l/2) ) and ( math.abs(self.body:getY() - y) < (self.altura/2+a/2))  then
		return true
	else
		return false
	end
end
